import { Component } from 'react'

import type { PropsWithChildren } from 'react'
import Taro from '@tarojs/taro'

import './app.scss'

class App extends Component<PropsWithChildren> {

  componentDidMount() { }

  componentDidShow() {
    // 应用显示时检查剪贴板内容
    this.checkClipboardForValidLinks()
  }

  componentDidHide() { }

  // 检查剪贴板中的有效链接
  checkClipboardForValidLinks = () => {
    Taro.getClipboardData({
      success: (res) => {
        const clipboardData = res.data || ''
        // 检查是否包含有效链接
        const urlRegex = /(https?:\/\/[^\s|，|,| ]+)/g
        const urls = clipboardData.match(urlRegex)

        if (urls && urls.length > 0) {
          // 如果找到链接，显示提示让用户选择是否下载
          Taro.showModal({
            title: '检测到链接',
            content: '检测到剪贴板中有有效链接，是否立即下载？',
            confirmText: '立即下载',
            cancelText: '稍后',
            success: (modalRes) => {
              if (modalRes.confirm) {
                // 用户确认下载，跳转到首页并自动处理链接
                Taro.switchTab({
                  url: '/pages/index/index?clipboardUrl=' + encodeURIComponent(urls[0])
                })
              }
            }
          })
        }
      },
      fail: (err) => {
        console.log('获取剪贴板内容失败', err)
      }
    })
  }

  // this.props.children 是将要会渲染的页面
  render() {
    return this.props.children
  }
}


export default App
